<template>
    <div class="tables-edit-outer">
        <div v-if="!isEditting" class="tables-edit-con" @dblclick="startEdit">
                <span class="value-on" >{{value}}</span>
                <Button v-if="editable" @click="startEdit" class="tables-edit-btn" style="padding: 2px 4px;" type="text"><Icon type="md-create"></Icon></Button>
        </div>
        <div v-else class="tables-editting-con">
                <Input :value="value" @input="handleInput" class="tables-edit-input" v-if="editType === 'input'"/>
                <Select placeholder="请选择" @on-change="handleInput" :value="value" v-else-if="editType === 'list'" class="tables-edit-input">
                  <Option :value="1">1</Option> 
                  <Option :value="2">2</Option>                            
                </Select>
                <Button @click="saveEdit" style="padding: 6px 4px;" type="text"><Icon type="md-checkmark"></Icon></Button>
                <Button @click="canceltEdit" style="padding: 6px 4px;" type="text"><Icon type="md-close"></Icon></Button>
        </div>
    </div>
</template>
<script>
export default {
    name: 'tableedit',    
    props: {
    value: [String, Number],
    edittingCellId: String,
    params: Object,
    editable: Boolean,
    editType: String
  },
  computed: {
    isEditting () {
      return this.edittingCellId === `editting-${this.params.index}-${this.params.column.key}`
    }
  },
  methods: {
    handleInput (val) {
      this.$emit('input', val)
    },
    startEdit () {
      this.$emit('on-start-edit', this.params)
    },
    saveEdit () {        
      this.$emit('on-save-edit', this.params)
    },
    canceltEdit () {
      this.$emit('on-cancel-edit', this.params)
    }
  }
}
</script>
<style lang="less">
.tables-edit-outer{
  height: 100%;
  .tables-edit-con{
    position: relative;
    height: 33px;
    line-height: 33px;
    .value-con{
      vertical-align: middle;
    }
    .tables-edit-btn{
      position: absolute;
      right: 10px;
      top: 0;
      display: none;
    }
    &:hover{
      .tables-edit-btn{
        display: inline-block;
      }
    }
  }
  .tables-editting-con{
    .tables-edit-input{
      width: ~"calc(100% - 60px)";
    }
  }
}
</style>

